#include "calculadorColisiones.h"

//inicializacion instancia
calculadorColisiones* calculadorColisiones::instancia = NULL;


calculadorColisiones::calculadorColisiones() {

}

calculadorColisiones::~calculadorColisiones() {

}

calculadorColisiones* calculadorColisiones::getInstancia() {
	if (calculadorColisiones::instancia == NULL) {
		calculadorColisiones::instancia = new calculadorColisiones();
	} 
	return calculadorColisiones::instancia;
}

void calculadorColisiones::destruirCalculadorColisiones(){
	if (calculadorColisiones::instancia != NULL) {
		delete(calculadorColisiones::instancia);
	}
}

void calculadorColisiones::procesarColision(figura* fig, tejo* t) {

	switch (fig->getTipoFigura()) {
	
		case CIRCULO:
			procesarColisionConCirculo((circulo*)fig,t);
			break;
		
		case RECTANGULO:
			procesarColisionConRectangulo((rectangulo*)fig,t);
			break;

		case SEGMENTO:
			procesarColisionConSegmento((segmento*)fig,t);
			break;

		case TRIANGULO:
			procesarColisionConTriangulo((triangulo*)fig,t);
			break;

		default:
			throw new errorInesperadoException("procesarColision::tipo desconocido");

	}
}

void calculadorColisiones::procesarColisionConRectangulo(rectangulo* tri, tejo* t) {

}

void calculadorColisiones::procesarColisionConCirculo(circulo* cir, tejo* t) {

}

void calculadorColisiones::procesarColisionConTriangulo(triangulo* tri, tejo* t) {

}

void calculadorColisiones::procesarColisionConSegmento(segmento* tri, tejo* t) {

}